package com.situ.day22;

import org.junit.Test;
import org.junit.experimental.theories.suppliers.TestedOn;

import java.util.ArrayList;
import java.util.List;

public class GenericDemo4 {
    /**
     * list集合只能处理 Double/Float/Integer等类型
     * 限定元素范围：元素的类型要继承自Number类  (上限)
     * @param list
     */
    public void save(List<? extends Number> list) {

    }

    @Test
    public void test1() {
        List<Double> list1 = new ArrayList<>();
        save(list1);
        List<Integer> list2 = new ArrayList<>();
        save(list2);
        List<String> list3 = new ArrayList<>();
        //save(list3);
    }

    /**
     * super限定元素范围：必须是String父类   【下限】
     * @param list
     */
    public void save1(List<? super String> list) {

    }

    @Test
    public void test2() {
        List<String> list1 = new ArrayList<>();
        save1(list1);
        List<Object> list2 = new ArrayList<>();
        save1(list2);
        List<Integer> list3 = new ArrayList<>();
        //save1(list3);
    }
}
